/**
 * @author FlanChan
 * 后端响应状态码
 */
export const ResponseCode = {
    SUCCESS: 200, // 成功
    PARAMS_ERROR: 400, // 请求参数错误
    NO_AUTH_ERROR: 401, // 无权限 (token 验证失败或未携带)
    FORBIDDEN_ERROR: 403, // 禁止访问
    NOT_FOUND_ERROR: 404, // 请求数据不存在

    NOT_TOKEN_ERROR: 410,  // 未携带 accessToken
    NOT_LOGIN_ERROR: 411, // 未登录 (用户未登录，未绑定 token)
    TOKEN_EXPIRED: 412, // accessToken 过期，可刷新 (accessToken 无效，refreshToken 有效)
    REFRESH_TOKEN_EXPIRED: 413, // refreshToken 过期，请重新登录 (refreshToken 也无效)

    SYSTEM_ERROR: 500, // 系统内部异常
    OPERATION_ERROR: 501, // 操作失败
    PROHIBITED: 502, // 禁止访问
} as const;

export type ResponseCode = typeof ResponseCode[keyof typeof ResponseCode];


/**
 * 分页对象
 * @author FlanChan
 */
export type Page<T> = {
    /**
     * 当前页
     */
    page: number;
    /**
     * 页码
     */
    size: number;
    /**
     * 总页数
     */
    pages: number;
    /**
     * 总数据量
     */
    total: number;
    /**
     * 当前返回的数据列表
     */
    records: T[];
}

/**
 * 后端统一结果返回对象
 * @author FlanChan
 */
export type Result<T> = {
    /**
     * 状态码; 200为成功
     */
    code: ResponseCode;
    /**
     * 提示信息
     */
    message:string;
    /**
     * 数据
     */
    data:T;
}